using IronQr;
using IronSoftware.Drawing;
private string? qrImageSrc;
private string scannedText = string.Empty;
private async Task OnFileSelected(InputFileChangeEventArgs e)
{
var file = e.File;
var tempPath = Path.Combine(Path.GetTempPath(), file.Name);
await using var stream = file.OpenReadStream(maxAllowedSize: 10_000_000);
await using var fs = File.Create(tempPath);
await stream.CopyToAsync(fs);
qrImageSrc = tempPath;
}
private async Task ScanQRCode()
{
// Load the scanned QR code
var inputBmp = AnyBitmap.FromFile(qrImageSrc!);
var imageInput = new QrImageInput(inputBmp);
var reader = new QrReader();
// Read the scanned QR code
var results = reader.Read(imageInput);
// Check if a result was found
var firstResult = results.FirstOrDefault();
if (firstResult != null)
{
// Save the QR code value as a string
scannedText = firstResult.Value;
}
else
{
scannedText = "No QR code found in the selected image.";
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports System.IO
Imports Microsoft.AspNetCore.Components.Forms
Imports System.Threading.Tasks
Private qrImageSrc As String = Nothing
Private scannedText As String = String.Empty
Private Async Function OnFileSelected(e As InputFileChangeEventArgs) As Task
Dim file = e.File
Dim tempPath = Path.Combine(Path.GetTempPath(), file.Name)
Await Using stream = file.OpenReadStream(maxAllowedSize:=10000000)
Await Using fs = File.Create(tempPath)
Await stream.CopyToAsync(fs)
End Using
End Using
qrImageSrc = tempPath
End Function
Private Async Function ScanQRCode() As Task
' Load the scanned QR code
Dim inputBmp = AnyBitmap.FromFile(qrImageSrc)
Dim imageInput = New QrImageInput(inputBmp)
Dim reader = New QrReader()
' Read the scanned QR code
Dim results = reader.Read(imageInput)
' Check if a result was found
Dim firstResult = results.FirstOrDefault()
If firstResult IsNot Nothing Then
' Save the QR code value as a string
scannedText = firstResult.Value
Else
scannedText = "No QR code found in the selected image."
End If
End Function
Install-Package IronQR
Blazor QR 코드 스캐너
Blazor 서버 애플리케이션에서 QR 코드를 스캔하기 위해 IronQR을 사용하세요. Blazor의 InputFile 구성 요소를 사용하여 브라우저에서 이미지를 업로드한 다음, 서버 측에서 QrReader.Read()로 디코딩합니다.
Blazor에서 QR 코드를 스캔하는 5단계 가이드
IronQR 사용;
IronSoftware.Drawing을 사용합니다.
await using var stream = file.OpenReadStream(maxAllowedSize: 10_000_000);
var inputBmp = AnyBitmap.FromFile(qrImageSrc!);
var results = reader.Read(imageInput);
코드 설명
InputFile.OnChange은 사용자가 파일을 선택할 때 실행됩니다. OpenReadStream은 브라우저 업로드를 임시 서버 경로로 스트리밍한 후, AnyBitmap.FromFile에 넘겨 이미지 형식을 디코딩합니다. QrImageInput은 IronQR을 위해 비트맵을 래핑하며, QrReader.Read은 IEnumerable<QrResult>을 반환합니다. FirstOrDefault는 QR 코드를 포함하지 않은 이미지에서도 예외를 발생시키지 않고 첫 번째 결과를 안전하게 검색합니다.